package com.tongtech.system.mapper;

import com.tongtech.system.domain.Industry;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 行业管理 数据层
 *
 * @author xingyc
 */
public interface IndustryMapper
{
    /**
     * 查询行业管理数据
     *
     * @param industry 行业信息
     * @return 行业信息集合
     */
    public List<Industry> selectIndustryList(Industry industry);

    /**
     * 根据行业ID查询信息
     *
     * @param industryId 行业ID
     * @return 行业信息
     */
    public Industry selectIndustryById(Long industryId);

    /**
     * 根据ID查询所有子行业
     *
     * @param industryId 行业ID
     * @return 行业列表
     */
    public List<Industry> selectChildrenIndustryById(Long industryId);

    /**
     * 根据ID查询所有子行业（正常状态）
     *
     * @param industryId 行业ID
     * @return 子行业数
     */
    public int selectNormalChildrenIndustryById(Long industryId);

    /**
     * 是否存在子节点
     *
     * @param industryId 行业ID
     * @return 结果
     */
    public int hasChildByIndustryId(Long industryId);


    /**
     * 校验行业名称是否唯一
     *
     * @param industryName 行业名称
     * @param parentId 父行业ID
     * @return 结果
     */
    public Industry checkIndustryNameUnique(@Param("industryName") String industryName, @Param("parentId") Long parentId);

    /**
     * 新增行业信息
     *
     * @param industry 行业信息
     * @return 结果
     */
    public int insertIndustry(Industry industry);

    /**
     * 修改行业信息
     *
     * @param industry 行业信息
     * @return 结果
     */
    public int updateIndustry(Industry industry);

    /**
     * 修改所在行业正常状态
     *
     * @param industryIds 行业ID组
     */
    public void updateIndustryStatusNormal(Long[] industryIds);

    /**
     * 修改子元素关系
     *
     * @param industrys 子元素
     * @return 结果
     */
    public int updateIndustryChildren(@Param("industrys") List<Industry> industrys);

    /**
     * 删除行业管理信息
     *
     * @param industryId 行业ID
     * @return 结果
     */
    public int deleteIndustryById(Long industryId);
}
